﻿$(document).ready(function () {
    // Initialize validation on the entire ASP.NET form.
    $("#form1").validate({
        // This prevents validation from running on every
        //  form submission by default.
        onsubmit: false
    });

    // Search for controls marked with the causesValidation flag 
    //  that are contained anywhere within elements marked as 
    //  validationGroups, and wire their click event up.
    $('.validationGroup .causesValidation').click(Validate);

    // Select any input[type=text] elements within a validation group
    //  and attach keydown handlers to all of them.
    $('.validationGroup :text').keydown(function (evt) {
        // Only execute validation if the key pressed was enter.
        if (evt.keyCode == 13) {
            // Find and store the next input element that comes after the
            //  one in which the enter key was pressed.
            var $nextInput = $(this).nextAll(':input:first');

            // If the next input is a submit button, go into validation.
            //  Else, focus the next form element as if enter == tab.
            if ($nextInput.is(':submit')) {
                Validate(evt);
            }
            else {
                evt.preventDefault();
                $nextInput.focus();
            }
        }
    });
});

function Validate(evt) {
    // Ascend from the button or input element that triggered the 
    //  event until we find a container element flagged with 
    //  .validationGroup and store a reference to that element.
    var $group = $(this).parents('.validationGroup');

    var isValid = true;

    // Descending from that .validationGroup element, find any input
    //  elements within it, iterate over them, and run validation on 
    //  each of them.
    $group.find(':input').each(function (i, item) {
        if (!$(item).valid())
            isValid = false;
    });

    // If any fields failed validation, prevent the button's click 
    //  event from triggering form submission.
    if (!isValid)
        evt.preventDefault();
}

function verificarGuiaActualizar(codigo) {
    location.href = 'ActualizarGuiaRemision.aspx?codigoGuiaRemision=' + codigo;

    //$.ajax({
    //    type: "POST",
    //    url: "Metodos.aspx/VerificarCarga",
    //    data: "{'codigo': '" + codigo + "','accion': 'A'}",
    //    contentType: "application/json; charset=utf-8",
    //    dataType: "json",
    //    success: function (response) {
    //        var resultado = response.d;

    //        if ($.trim(resultado) == "") {
    //            location.href = 'ActualizarCarga.aspx?codigoCarga=' + codigo;
    //        } else {
    //            $("#dialog").html(resultado);
    //            $("#dialog").dialog({
    //                buttons: {
    //                    "Aceptar": function () {
    //                        $(this).dialog("close");
    //                    }
    //                },
    //                modal: true
    //            });
    //        }
    //    },
    //    error: function (result) {
    //        ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
    //    }
    //});
}

function verificarGuiaEliminar(codigo) {
    $.ajax({
        type: "POST",
        url: "Metodos.aspx/VerificarGuiaRemision",
        data: "{'codigo': '" + codigo + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            var resultado = response.d;

            if ($.trim(resultado) == "") {
                $("#dialog").html("¿Seguro de eliminar la guia de remisión?");
                $("#dialog").dialog({
                    buttons: {
                        "Eliminar": function () {
                            $.ajax({
                                type: "POST",
                                url: "Metodos.aspx/EliminarGuiaRemision",
                                data: "{'codigo': '" + codigo + "'}",
                                contentType: "application/json; charset=utf-8",
                                dataType: "json",
                                success: function (responseSecond) {

                                    var carga = (typeof responseSecond.d) == 'string' ?
                                       eval('(' + responseSecond.d + ')') :
                                       responseSecond.d;

                                    if (carga == "1") {
                                        ShowMessageJustAlert("Se eliminó la guia de remisión correctamente");
                                        location.href = 'BuscarGuiaRemision.aspx';
                                    } else {
                                        ShowMessageJustAlert("No se pudo eliminar la guía de remisión");
                                    }
                                },
                                error: function (resultSecond) {
                                    ShowMessageJustAlert('ERROR ' + resultSecond.status + ' ' + resultSecond.statusText);
                                }
                            });
                            $(this).dialog("close");
                        },
                        "Cancelar": function () {
                            $(this).dialog("close");
                        }
                    },
                    modal: true
                });
            } else {
                $("#dialog").html(resultado);
                $("#dialog").dialog({
                    buttons: {
                        "Aceptar": function () {
                            $(this).dialog("close");
                        }
                    },
                    modal: true
                });
            }
        },
        error: function (result) {
            ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
        }
    });
}



function PrintSecureCode(carga, code, pagoorigen) {
    $("#dialogJustAlert").html("Acepte para imprimir el ticket del código de seguridad");
    $("#dialogJustAlert").dialog({
        buttons: {
            "Aceptar": function () {
                window.open("ImprimirTicket.aspx?CodigoCarga=" + carga, "_blank", "toolbar=no, scrollbars=no, resizable=yes, top=10, left=10, width=300, height=200");
                $(this).dialog("close");
                if (pagoorigen == "1") {
                    PrintPayOrder(carga, code);
                }
            }
        },
        modal: true
    });
}

function PrintPayOrder(carga, code) {
    $("#dialogJustAlert").html("Acepte para imprimir la orden de pago");
    $("#dialogJustAlert").dialog({
        buttons: {
            "Aceptar": function () {
                //window.print();
                window.open("OrdenPago.aspx?CodigoCarga=" + carga, "_blank", "toolbar=no, scrollbars=no, resizable=yes, top=10, left=10, width=800, height=600");
                $(this).dialog("close");
            }
        },
        modal: true
    });
}

function ShowPrint(val) {
    $("#dialog").html("Acepte para imprimir la información de la carga");
    $("#dialog").dialog({
        buttons: {
            "Aceptar": function () {
                //window.print();
                window.open("ImprimirCarga.aspx?CodigoCarga=" + val, "_blank", "toolbar=no, scrollbars=no, resizable=yes, top=10, left=10, width=800, height=600");
                $(this).dialog("close");
            }
        },
        modal: true
    });
}

function ShowPrintDetalle(val) {
    $("#dialog").html("Acepte para imprimir la información del detalle de la carga");
    $("#dialog").dialog({
        buttons: {
            "Aceptar": function () {
                //window.print();
                window.open("ImprimirDetalleCarga.aspx?CodigoCarga=" + val, "_blank", "toolbar=no, scrollbars=no, resizable=yes, top=10, left=10, width=800, height=600");
                $(this).dialog("close");
            }
        },
        modal: true
    });
} 

function ShowPrintGuiaRemision(val) {
    $("#dialog").html("Acepte para imprimir la información de la guia de remision");
    $("#dialog").dialog({
        buttons: {
            "Aceptar": function () {
                //window.print();
                window.open("ImprimirGuiaRemision.aspx?CodigoGuia=" + val, "_blank", "toolbar=no, scrollbars=no, resizable=yes, top=10, left=10, width=800, height=600");
                $(this).dialog("close");
            }
        },
        modal: true
    });
}

function ShowMessage(val) {
    $("#dialog").html(val);
    $("#dialog").dialog({
        title: "Mensaje Cruz del Sur",
        modal: true
    });
}

function ShowMessageError(val) {
    $("#dialogError").html(val);
    $("#dialogError").dialog({
        title: "Mensaje Cruz del Sur",
        modal: true
    });
}

function ShowMessageJustAlert(val) {
    $("#dialogJustAlert").html(val);
    $("#dialogJustAlert").dialog({
        title: "Mensaje Cruz del Sur",
        buttons: {
            Aceptar: function () {
                $(this).dialog("close");
            }
        },
        modal: true
    });
}

function f_eliminarProducto(codigo) {

    $.ajax({
        type: "POST",
        url: "RegistrarCarga.aspx/EliminarProducto",
        data: "{'codigo': '" + codigo + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            getProductos();
        },
        error: function (result) {
            ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
        }
    });
}

function randomIntFromInterval(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}

function f_verificar(oculta) {
    f_ocultar(false, "divRuta", oculta);
}

function f_ocultar(clase, nombre, ocultar) {
    var control = $("#" + nombre);
    if (clase) {
        control = $("." + nombre);
    }

    if (ocultar) {
        control.css("display", "none");
    } else {
        control.css("display", "block");
    }
}

function VerificarProgramacionRuta(codigo, accion, estado) {
    $.ajax({
        type: "POST",
        url: "Metodos.aspx/VerificarProgramacionRuta",
        data: "{'codigo': '" + codigo + "','accion': '" + accion + "','estado': '" + estado + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            var resultado = response.d;
            if ($.trim(resultado) == "") {
                if (accion == "A") {
                    location.href = 'ActualizarProgramacionRuta.aspx?codigoProgramacionRuta=' + codigo;
                } else {
                    if (accion == "E") {
                        $("#dialog").html("¿Desea realizar la eliminación de la programación de ruta seleccionada?");
                        $("#dialog").dialog({
                            buttons: {
                                "Aceptar": function () {
                                    $.ajax({
                                        type: "POST",
                                        url: "Metodos.aspx/EliminarProgramacionRuta",
                                        data: "{'codigo': '" + codigo + "'}",
                                        contentType: "application/json; charset=utf-8",
                                        dataType: "json",
                                        success: function (responseSecond) {

                                            var carga = (typeof responseSecond.d) == 'string' ?
                                               eval('(' + responseSecond.d + ')') :
                                               responseSecond.d;

                                            if (carga == "1") {
                                                ShowMessageJustAlert("Se eliminó la programacion de ruta correctamente");
                                                location.href = 'BuscarProgramacionRuta.aspx';
                                            } else {
                                                ShowMessageJustAlert("No se pudo eliminar la programacion de ruta");
                                            }
                                        },
                                        error: function (resultSecond) {
                                            ShowMessageJustAlert('ERROR ' + resultSecond.status + ' ' + resultSecond.statusText);
                                        }
                                    });
                                    $(this).dialog("close");
                                },
                                "Cancelar": function () {
                                    $(this).dialog("close");
                                }
                            },
                            modal: true
                        });
                    }
                    else {
                        $("#dialog").html("¿Desea realizar el cambio de estado a la programación de ruta seleccionada?");
                        $("#dialog").dialog({
                            buttons: {
                                "Aceptar": function () {
                                    $.ajax({
                                        type: "POST",
                                        url: "Metodos.aspx/CambiarEstadoProgramacionRuta",
                                        data: "{'codigo': '" + codigo + "','estado': '" + estado + "'}",
                                        contentType: "application/json; charset=utf-8",
                                        dataType: "json",
                                        success: function (responseSecond) {

                                            var carga = (typeof responseSecond.d) == 'string' ?
                                               eval('(' + responseSecond.d + ')') :
                                               responseSecond.d;

                                            if (carga == "1") {
                                                ShowMessageJustAlert("Se cambio de estado a la programacion de ruta correctamente");
                                                setTimeout("f_redirect('1');", 2000);
                                                
                                            } else {
                                                ShowMessageJustAlert("No se pudo cambiar de estado a la programacion de ruta");
                                            }
                                        },
                                        error: function (resultSecond) {
                                            ShowMessageJustAlert('ERROR ' + resultSecond.status + ' ' + resultSecond.statusText);
                                        }
                                    });
                                    $(this).dialog("close");
                                },
                                "Cancelar": function () {
                                    $(this).dialog("close");
                                }
                            },
                            modal: true
                        });
                    }
                }
            } else {
                $("#dialog").html(resultado);
                $("#dialog").dialog({
                    buttons: {
                        "Aceptar": function () {
                            $(this).dialog("close");
                        }
                    },
                    modal: true
                });
            }
        },
        error: function (result) {
            ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
        }
    });
}

function f_redirect(val)
{
    if (val == "1") {
        location.href = 'BuscarProgramacionRuta.aspx';
    } else {
        if (val == "2")
        {
            location.href = 'ActualizarCargaArribada.aspx';
        }
    }
}

function verificarEstadoRecojoAsignarCarga(codigo, estado) {
    if (estado == "R")
    {
        ShowMessageJustAlert("El recojo de la carga ya se ha procedido");
        return;
    }

    location.href = 'AsignarCargaRecojo.aspx?codigoRecojo=' + codigo;
}


function verificarEstadoRecojoActualizar(codigo) {
    location.href = 'ActualizarRecojo.aspx?codigoRecojo=' + codigo;
}


function verificarEstadoRecojoEliminar(codigo, estado) {
    if (estado == "R") {
        ShowMessageJustAlert("El recojo de la carga ya se ha procedido y no se puede eliminar");
        return;
    }
    
    //$.ajax({
    //    type: "POST",
    //    url: "Metodos.aspx/EliminarRecojo",
    //    data: "{'codigo': '" + codigo + "'}",
    //    contentType: "application/json; charset=utf-8",
    //    dataType: "json",
    //    success: function (response) {
    //        var resultado = response.d;
            
    //        if ($.trim(resultado) == "") {
    
                $("#dialog").html("¿Seguro de eliminar el recojo?");
                $("#dialog").dialog({
                    buttons: {
                        "Eliminar": function () {
                            $.ajax({
                                type: "POST",
                                url: "Metodos.aspx/EliminarRecojo",
                                data: "{'codigo': '" + codigo + "'}",
                                contentType: "application/json; charset=utf-8",
                                dataType: "json",
                                success: function (responseSecond) {
                                    
                                    var carga = (typeof responseSecond.d) == 'string' ?
                                       eval('(' + responseSecond.d + ')') : responseSecond.d;
                                    if (carga == "1") {
                                        ShowMessageJustAlert("Se eliminó el recojo correctamente");
                                        location.href = 'BuscarRecojo.aspx';
                                    } else {
                                        ShowMessageJustAlert("No se pudo eliminar el recojo");
                                    }
                                },
                                error: function (resultSecond) {
                                    ShowMessageJustAlert('ERROR ' + resultSecond.status + ' ' + resultSecond.statusText);
                                }
                            });
                            $(this).dialog("close");
                        },
                        "Cancelar": function () {
                            $(this).dialog("close");
                        }
                    },
                    modal: true
                });
            //} else {
            //    $("#dialog").html(resultado);
            //    $("#dialog").dialog({
            //        buttons: {
            //            "Aceptar": function () {
            //                $(this).dialog("close");
            //            }
            //        },
            //        modal: true
            //    });
            //}
        //},
        //error: function (result) {
        //    ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
        //}
    //});
}


function verificarEstadoCargaActualizar(codigo) {
    $.ajax({
        type: "POST",
        url: "Metodos.aspx/VerificarCarga",
        data: "{'codigo': '" + codigo + "','accion': 'A'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            var resultado = response.d;

            if ($.trim(resultado) == "") {
                location.href = 'ActualizarCarga.aspx?codigoCarga=' + codigo;
            } else {
                $("#dialog").html(resultado);
                $("#dialog").dialog({
                    buttons: {
                        "Aceptar": function () {
                            $(this).dialog("close");
                        }
                    },
                    modal: true
                });
            }
        },
        error: function (result) {
            ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
        }
    });
}

function verificarEstadoCargaEliminar(codigo) {
    $.ajax({
        type: "POST",
        url: "Metodos.aspx/VerificarCarga",
        data: "{'codigo': '" + codigo + "','accion': 'E'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            var resultado = response.d;

            if ($.trim(resultado) == "") {
                $("#dialog").html("¿Seguro de eliminar la carga?");
                $("#dialog").dialog({
                    buttons: {
                        "Eliminar": function () {
                            $.ajax({
                                type: "POST",
                                url: "Metodos.aspx/EliminarCarga",
                                data: "{'codigo': '" + codigo + "'}",
                                contentType: "application/json; charset=utf-8",
                                dataType: "json",
                                success: function (responseSecond) {
                                    
                                    var carga = (typeof responseSecond.d) == 'string' ?
                                       eval('(' + responseSecond.d + ')') :
                                       responseSecond.d;

                                    if (carga == "1") {
                                        ShowMessageJustAlert("Se eliminó la carga correctamente");
                                        location.href = 'BuscarCarga.aspx';
                                    } else {                                        
                                        ShowMessageJustAlert("No se pudo eliminar la carga");
                                    }
                                },
                                error: function (resultSecond) {
                                    ShowMessageJustAlert('ERROR ' + resultSecond.status + ' ' + resultSecond.statusText);
                                }
                            });
                            $(this).dialog("close");
                        },
                        "Cancelar": function () {
                            $(this).dialog("close");
                        }
                    },
                    modal: true
                });
            } else {
                $("#dialog").html(resultado);
                $("#dialog").dialog({
                    buttons: {
                        "Aceptar": function () {
                            $(this).dialog("close");
                        }
                    },
                    modal: true
                });
            }
        },
        error: function (result) {
            ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
        }
    });
}


function verificarCargaAEntregar(codigo) {
    $("#dialog-form").dialog({
        autoOpen: true,
        height: 300,
        width: 350,
        modal: true,
        buttons: {
            "Aceptar Código Seguridad": function () {
                var bValid = false;
                var codigoSeguridad = $("#txtCodigoSeguridad").val();
                var DNIDestino = $("#txtDNIDestino").val();
                
                $.ajax({
                    type: "POST",
                    url: "Metodos.aspx/VerificarCodigoSeguridad",
                    data: "{'codigo': '" + codigo + "', 'codigoSeguridad': '" + codigoSeguridad + "', 'DNIDestino': '" + DNIDestino + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        var resultado = response.d;

                        if ($.trim(resultado) == "") {

                            $.ajax({
                                type: "POST",
                                url: "Metodos.aspx/ActualizarEstado",
                                data: "{'codigo': '" + codigo + "'}",
                                contentType: "application/json; charset=utf-8",
                                dataType: "json",
                                success: function (response) {
                                    $("#dialog").html("Se actualizó el estado de la carga.");
                                    $("#dialog").dialog({
                                        buttons: {
                                            "Aceptar": function () {
                                                $(this).dialog("close");
                                                $("#txtCodigoSeguridad").val("");
                                                $("#txtDNIDestino").val("");
                                                $("#txtCodigoSeguridad").focus();
                                            }
                                        },
                                        modal: true
                                    });
                                },
                                error: function (result) {
                                    ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
                                }
                            });
                        } else {
                            if ($.trim(resultado) == "0") {
                                $("#dialog").html("El código de seguridad o el DNI de cliente destino es incorrecto.");
                                $("#dialog").dialog({
                                    buttons: {
                                        "Aceptar": function () {
                                            $(this).dialog("close");
                                            $("#txtCodigoSeguridad").val("");
                                            $("#txtDNIDestino").val("");                                            
                                            $("#txtCodigoSeguridad").focus();
                                        }
                                    },
                                    modal: true
                                });
                            } else {
                                if ($.trim(resultado) == "2") {
                                    $("#dialog").html("La orden de pago se encuentra pendiente de pago.");
                                    $("#dialog").dialog({
                                        buttons: {
                                            "Aceptar": function () {
                                                $(this).dialog("close");
                                                $("#txtCodigoSeguridad").val("");
                                                $("#txtDNIDestino").val("");
                                                $("#txtCodigoSeguridad").focus();
                                            }
                                        },
                                        modal: true
                                    });
                                } else {
                                    $("#dialog").html("Se generará la orden de pago. Luego de realizar el pago se podrá cambiar de estado.");
                                    $("#dialog").dialog({
                                        buttons: {
                                            "Aceptar": function () {
                                                window.open("OrdenPago.aspx?CodigoCarga=" + codigo, "_blank", "toolbar=no, scrollbars=no, resizable=yes, top=10, left=10, width=800, height=600");
                                                $(this).dialog("close");
                                                $("#txtCodigoSeguridad").val("");
                                                $("#txtDNIDestino").val("");
                                                $("#txtCodigoSeguridad").focus();
                                            }
                                        },
                                        modal: true
                                    });
                                }
                            }
                        }
                    },
                    error: function (result) {
                        ShowMessageJustAlert('ERROR ' + result.status + ' ' + result.statusText);
                    }
                });
            },
            Cancelar: function () {
                $(this).dialog("close");
                $("#txtCodigoSeguridad").val("");
                $("#txtDNIDestino").val("");
                $("#txtCodigoSeguridad").focus();
            }
        },
        close: function () {
            $("#txtCodigoSeguridad").val("");
            $("#txtDNIDestino").val("");
            $("#txtCodigoSeguridad").focus();
        }
    });
}
